"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/25 8:36
@Description :  字典容器

列表
元组
集合     存储多个数据  不同类型数据

一个班级学生的信息
   姓名
   年龄
   性别
   身高
   分数
列表  names = [张三] ages =[21] sexs = ['男']

存储一个班级的学生成绩  50
scores = [.....]   张三分数
key ：value

字典  k:v
定义:
   字典的每个键值 key=>value 对用冒号 : 分割，每个对之间用逗号(,)分割，整个字典包括在花括号 {} 中
   d = {key1 : value1, key2 : value2, key3 : value3 }
key:  要唯一   不可被改变的数据 字符串 数值 元组
       如果key有重回复  则后面的值会覆盖前面的值
value:  不限定数据类型   不要求唯一
"""
# <class 'dict'>  字典
scores = {
    'zhangsan': 90,
    'lisi': 85,
    'wangwu': 70,
}
print(scores, type(scores))

# 获取字典中的数据  字典名[key]   key必须要存在 否则抛出错误信息
# score = scores['zhangsa']  # KeyError: 'zhangsa'
score = scores['zhangsan']
print(score, type(score))

# 添加新的键值对  前提是key不存在
scores['xiaoming'] = 80
print(scores, type(scores))
#  key存在则是数据的更新
scores['zhangsan'] = 50
print(scores, type(scores))

# len()
print('len dict:', len(scores))

print('>>>>>>>>>>>>>>>>>>>>>>>>字典常见操作<<<<<<<<<<<<<<<<<<<<<<')
# score = scores.get('zhangsan')  # 通过指定的key获取value
score = scores.get('zhangsa')  # 通过指定的key获取value  如果key不存在 则返回None  不会抛出错误信息
print(f'score = {score}')

# 删除
# key_value = scores.pop('zhangsan')
# key_value = scores.pop('zhangsa')   # KeyError: 'zhangsa'

#  删除指定key的键值对
del scores['zhangsan']
print(f'{scores}')

# 获取字典中所有的值
values = list(scores.values())
print(values,type(values))
#  获取字典中所有的key
keys = set(scores.keys())
print(keys,type(keys))

# dict_item = scores.items()
# print(dict_item,type(dict_item))

# num1,num2 = (2,3)
# print(num1,num2)

# 遍历字典  [('lisi',50),(),()]
for key, value in scores.items():
    print(f'{key}:{value}')
# 清空字典
scores.clear()
print(scores)

